package com.example

/**
 * 换啤酒
 *
 * @author lbq
 * @date 2022/1/6 21:57
 * @version 1.0
 */
object HomeWork1 {
  def main(args: Array[String]): Unit = {
    val num = 100 / 2
    println(s"100块可以喝${num + getNumber(num, num, 0)}瓶啤酒")
  }

  /**
   *
   * @param cap    瓶盖的数量
   * @param empty  空瓶的数量
   * @param bottle 已经喝了的啤酒数量
   * @return
   */
  def getNumber(cap: Int, empty: Int, bottle: Int): Int = {
    println(s"cap: $cap\tempty: $empty\tbottle: $bottle\t")
    // 递归终止条件
    if (cap < 5 && empty < 3) return bottle
    // 空瓶可以换啤酒的数量
    val a = empty / 3
    // 空瓶换完啤酒后剩下空瓶的数量
    val b = empty % 3
    // 瓶盖可以换啤酒的数量
    val c = cap / 5
    // 瓶盖换完啤酒剩下的瓶盖数量
    val d = cap % 5
    getNumber(a + c + d, a + b + c, a + c + bottle)
  }

}
